package rmi.farted;

import java.rmi.Remote;
import java.rmi.RemoteException;

/** ServerInterpreter, Variante RMI  
 * Dieses Interface muss von jedem Server implementiert werden.
 * @author J. Schoch
 * @version 1.0
 * @date Okt. 2010
 */

public interface ServerInterpreter extends Remote {
	
	/** interpretKeyPressed --
	 * wird dann aufgerufen, wenn eine Keyboard-Taste im Texteditor gedr�ckt wurde
	 * @param userID: ID des Benutzers
	 * @param hashValueText: Der Hash-Wert, welcher vor dem neuen Zeichen �ber den Text gebildet werden muss
	 * @param keyID: Integerwert der gedr�ckten Taste
	 * @param keyPosRow: Zeile des eingegebenen Zeichens
	 * @param keyPosCol: Spalte des eingegebenen Zeichens, resp. nur des Zeichens in definierter Zeile
	 * @throws RemoteException
	 */
	public void interpretKeyPressed(int userID, int hashValueText, char keyID, int keyPosRow, int keyPosCol) throws RemoteException;
	
	/** registerClient --
	 * f�hrt registriering eines Clients aus
	 * @param client: aktueller Client --> ClientInterpreter: alle RMI-N�tzlichen Daten sind enthalten
	 * @return userID: gibt eine ID > 0 f�r den Benutzer zur�ck. 0 if fail.
	 * @throws RemoteException
	 */
	public int registerClient(ClientInterpreter client) throws RemoteException;
}
